  // PunctuationConverter.swift

import Foundation

struct PunctuationConverter {
    // 中文标点到阿拉伯语标点的映射字典
  static let chineseToArabicPunctuation: [Character: Character] = [
    "，": "،",  // 中文逗号 -> 阿拉伯语逗号
    "。": ".",  // 中文句号 -> 阿拉伯语句号
    "？": "؟",  // 中文问号 -> 阿拉伯语问号
    "！": "!",  // 中文感叹号 -> 阿拉伯语感叹号
    "；": "؛",  // 中文分号 -> 阿拉伯语分号
    "：": ":",  // 中文冒号 -> 阿拉伯语冒号
    "（": "(",  // 中文括号 -> 阿拉伯语括号
    "）": ")",  // 中文括号 -> 阿拉伯语括号
    "【": "[",  // 中文方括号 -> 阿拉伯语方括号
    "】": "]",  // 中文方括号 -> 阿拉伯语方括号
    "《": "<",  // 中文书名号 -> 小于号
    "》": ">",  // 中文书名号 -> 大于号
    "、": "،"   // 中文顿号 -> 阿拉伯语逗号
  ]
  
    // 需要特殊处理的多字符标点映射
  static let specialPunctuationMap = [
    "\u{201C}": "\u{201C}",   // 中文左引号 -> 阿拉伯语左引号
    "\u{201D}": "\u{201D}",   // 中文右引号 -> 阿拉伯语右引号
    "\u{2018}": "\u{2018}",   // 中文左单引号 -> 阿拉伯语左单引号
    "\u{2019}": "\u{2019}",   // 中文右单引号 -> 阿拉伯语右单引号
    "\u{2026}": "..."         // 中文省略号 -> 阿拉伯语省略号
  ]
  
    /// 将字符串中的中文标点符号转换为阿拉伯语标点符号
    /// - Parameter text: 包含中文标点的文本
    /// - Returns: 转换后的文本
  static func convertChineseToArabicPunctuation(_ text: String) -> String {
    var result = text
    
      // 处理单字符标点
    var convertedString = ""
    for character in result {
      if let arabicPunctuation = chineseToArabicPunctuation[character] {
        convertedString.append(arabicPunctuation)
      } else {
        convertedString.append(character)
      }
    }
    result = convertedString
    
      // 处理特殊多字符标点
    for (chinesePunct, arabicPunct) in specialPunctuationMap {
      result = result.replacingOccurrences(of: chinesePunct, with: arabicPunct)
    }
    
    return result
  }
}
